obj-m += helloworld.o				# 先写生成的中间文件的名字是什么,-m 的意思是把我们的驱动编译成模块
# KDIR:=/home/topeet/driver/imx6ull/linux-imx-rel_imx_4.1.15_2.1.0_ga/
KDIR:=/home/y/driver/imx6ull/linux-imx-rel_imx_4.1.15_2.1.0_ga/
PWD?=$(shell pwd)					# 获取当前目录的变量
all:
	make -C $(KDIR) M=$(PWD) modules	
# make 会进入内核源码的路径,然后把当前路径下的代码编译成模块


# # ==========================================
# # 适用于 i.MX6ULL 的字符设备驱动 Makefile
# # 支持 Ubuntu 官方 gcc-arm-linux-gnueabihf
# # 也支持 Linaro/Yocto/Buildroot 自定义工具链
# # ==========================================

# # 目标模块名（与 .c 源文件同名即可）
# obj-m += helloworld.o

# # 内核源码根目录（请确认路径正确）
# KDIR := /home/y/driver/imx6ull/linux-imx-rel_imx_4.1.15_2.1.0_ga

# # 当前目录
# PWD := $(shell pwd)

# # 默认架构与交叉编译前缀
# ARCH        ?= arm
# CROSS_COMPILE ?= arm-linux-gnueabihf-

# # 检查交叉编译器是否存在
# CC_CHECK := $(shell which $(CROSS_COMPILE)gcc 2>/dev/null)
# ifeq ($(CC_CHECK),)
#     $(error $(CROSS_COMPILE)gcc not found! 请先安装/配置交叉编译工具链)
# endif

# # 导出变量供子 make 调用
# export ARCH CROSS_COMPILE

# # 默认目标
# all:
# 	$(MAKE) -C $(KDIR) M=$(PWD) modules

# # 清理生成的文件
# clean:
# 	$(MAKE) -C $(KDIR) M=$(PWD) clean
# 	rm -f *.ko *.o *.mod.* *.symvers *.order

# # 安装模块到 NFS 根文件系统（按需修改路径）
# install:
# 	cp *.ko /your/nfs/root/lib/modules/$(shell uname -r)/extra/

# # 快速帮助
# help:
# 	@echo "Usage:"
# 	@echo "  make        - 编译模块"
# 	@echo "  make clean  - 清理中间文件"
# 	@echo "  make install- 拷贝 *.ko 到目标文件系统"
# 	@echo "如需自定义工具链，请设置:"
# 	@echo "  export ARCH=arm"
# 	@echo "  export CROSS_COMPILE=<prefix>"

# .PHONY: all clean install help







